﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;

namespace SideMan
{
    /// <summary>
    /// App.xaml 的交互逻辑
    /// </summary>
    public partial class App : Application
    {
        private Mutex mutex;

        private void Application_Exit(object sender, ExitEventArgs e)
        {
            mutex?.Close();

            AppHelper.Inst.Exit();

            //base.OnExit(e);
        }


        private void Application_Startup(object sender, StartupEventArgs e)
        {
            const string appName = Constants.APP_NAME; // 请替换成你的应用程序名称
            bool createdNew;

            // 创建或打开命名的互斥体
            mutex = new Mutex(true, appName, out createdNew);

            // 如果已经有一个实例在运行，则激活该实例并退出当前实例
            if (!createdNew)
            {
                ActivateRunningInstance();
                Shutdown();
                return;
            }

            AppHelper.Inst.Init();

            //base.OnStartup(e);
        }

        private void ActivateRunningInstance()
        {
            // 将激活代码放在这里
            // 例如，可以通过使用WPF的Application.Current.MainWindow属性来激活主窗口
            Application.Current.MainWindow.Activate();
        }
    }
}
